The table offset used below is passed in from the caller
Retrieve the saved copy of PHYRegister 0x6B
- Take bits 0-7 of the value
- Take bits 8-15 of the value and shift right by 8 bits
- If bit 7 is set in either value, subtract 0x100 from the value (results in signed 8 bit values)
- Multiply the Table value requested with each of the signed 8 bit values and then add 0x20, then shift the result right by 6
- Clamp both results between -15 and 15
- If either value is less than than zero now, add 0x100 to the value and mask with 0xFF
- Shift the value that came from bits 8-15 left by 8
Bitwise OR the two values together and write the result to PHYRegister 0x6A
Table
Offset |
Value |
0 |
0x22 |
1 |
0x24 |
2 |
0x26 |
3 |
0x28 |
4 |
0x2B |
5 |
0x2D |
6 |
0x30 |
7 |
0x33 |
8 |
0x36 |
9 |
0x39 |
10 |
0x3C |
11 |
0x40 |
12 |
0x2B |
13 |
0x2D |
14 |
0x30 |
15 |
0x33 |
16 |
0x36 |
17 |
0x39 |
18 |
0x3C |
19 |
0x40 |
20 |
0x33 |
21 |
0x36 |
22 |
0x39 |
23 |
0x3C |
24 |
0x40 |
25 |
0x2D |
26 |
0x30 |
27 |
0x33 |
28 |
0x36 |
29 |
0x39 |
30 |
0x3C |
31 |
0x40 |
32 |
0x22 |
33 |
0x24 |
34 |
0x26 |
35 |
0x28 |
36 |
0x2B |
37 |
0x2D |
38 |
0x30 |
39 |
0x33 |
40 |
0x36 |
41 |
0x39 |
42 |
0x3C |
43 |
0x40 |
44 |
0x45 |
45 |
0x49 |
46 |
0x4D |
47 |
0x52 |
48 |
0x56 |
49 |
0x5E |
50 |
0x63 |
51 |
0x69 |
52 |
0x6F |
53 |
0x76 |
54 |
0x7E |
55 |
0x86 |
56 |
0x8E |
57 |
0x96 |
58 |
0x9F |
59 |
0xA8 |
60 |
0xB2 |
61 |
0xBD |
62 |
0xC8 |
63 |
0xD4 |